import axios from "axios";

// 如果需要指定baseURL、timeout、headers，可以new一个Class配置
// import { MyAxiosClass } from '../http'
// eg：const myAxios = new MyAxiosClass('https://jd.com:7788')
export class MyAxiosClass {
    constructor(baseURL = '', timeout = 0, headers = {}) {
        // 为当前实例创建一个axios对象
        this.myAxios = axios.create({
            baseURL: baseURL,
            timeout: timeout,
            headers: headers
        })
    }
    request(config) {
        console.log(config)
        return new Promise((resolve, reject) => {
            this.myAxios.request(config).then(res => {
                resolve(res.data);// 操作成功，返回res.data
            }).catch(error => {
                reject(error);// 请求失败返回错误
            });
        })
    }
    get(url, config = { params: {} }) {
        return this.request({ url, ...config, method: 'get' });
        // return new Promise((resolve, reject) => {
        //     this.myAxios.get(url, config).then(res => {
        //         resolve(res.data);// 操作成功，返回res.data
        //     }).catch(error => {
        //         reject(error);// 请求失败返回错误
        //     });
        // });
    }
    post(url, data = {}, config = {}) {
        return this.request({ url, data, ...config, method: 'post' });
        // return new Promise((resolve, reject) => {
        //     this.myAxios.post(url, data, config).then(res => {
        //         resolve(res.data);// 操作成功，返回res.data
        //     }).catch(error => {
        //         reject(error);// 请求失败返回错误
        //     });
        // });
    }
}

// 如果平时使用直接导入包即可使用：import myAxios from '@/http';
export default new MyAxiosClass()